﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using br.com.portocs.unidaacademico.repositorio;

public partial class academico_Disciplinas : System.Web.UI.Page
{
    private string AreaId = br.com.portocs.unidaacademico.ui.views.Areas.Disciplina;

    private string PAGINA_ATUAL = "Disciplinas.aspx";
    private string PAGINA_CADASTRO = "DisciplinasCadastro.aspx";
    private string ITEM_ID = "ItemId";


    private void RemoverItem()
    {
        /************ Esta linha eh editavel *************/
        new RepositorioBase<br.com.portocs.unidaacademico.dominio.Disciplina>().Excluir(long.Parse(Request.QueryString[ITEM_ID].ToString()));
        /**************************************************/
    }

    private void popularItems()
    {
        /************ Linhas editaveis *******************/
        listItems.DataSource = new RepositorioBase<br.com.portocs.unidaacademico.dominio.Disciplina>().RecuperaTodos();
        listItems.DataTextField = "Nome";
        listItems.DataValueField = "Id";
        /*************************************************/
    }

    #region
    //Não é necessário editar 
    protected void Page_Load(object sender, EventArgs e)
    {
        ViewState["AreaId"] = AreaId;

        //verificar se é para excluir algum registro
        verificaSeHaExclusao();

        //verificar se é para exibir alguma mensagem
        verificaSeHaMensagemAExibir();

        popularListaItems();

    }

    //Não é necessário editar 
    private void verificaSeHaMensagemAExibir()
    {
        string aviso = Session["exibir_aviso"] != null ? Session["exibir_aviso"].ToString() : string.Empty;

        if (!aviso.Equals(string.Empty))
        {
            litAviso.Text = aviso;
            Session.Remove("exibir_aviso");
        }

    }



    private void verificaSeHaExclusao()
    {
        string remover = Request.QueryString["acao"] != null ? Request.QueryString["acao"].ToString() : string.Empty;

        if (!remover.Equals(string.Empty))
        {
            RemoverItem();
            Session.Add("exibir_aviso", "Item excluído com sucesso");
            Response.Redirect(PAGINA_ATUAL);
        }
    }



    private void popularListaItems()
    {
        string selValue = string.Empty;
        if (listItems.SelectedValue != string.Empty) { selValue = listItems.SelectedValue; }

        popularItems();
        if (!selValue.Equals(string.Empty)) { listItems.SelectedValue = selValue; }
        listItems.DataBind();
    }
    #endregion

    #region Ações
    //Não é necessário editar 
    protected void btCriar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect(PAGINA_CADASTRO + "?acao=criar");
    }
    //Não é necessário editar 
    protected void btAlterar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect(PAGINA_CADASTRO + "?acao=alterar&" + ITEM_ID + "=" + listItems.SelectedValue);
    }
    //Não é necessário editar 
    protected void btExcluir_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect(PAGINA_ATUAL + "?acao=excluir&" + ITEM_ID + "=" + listItems.SelectedValue);
    }

    #endregion
}